home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / et / etman.lha / man / mann / macro.Guard.n < prev    next >
Text File  |  1991-10-24  |  1KB  |  61 lines

  1.  
  2.  
  3. .SH MACRO NAME
  4. \fBGuard(
  5. ObjPtr objectPointer, name className)
  6. .SH DESCRIPTION
  7. \fBGuard\fP provides a so called \fBtype secure cast\fP. It tests whether the object referred to by \fBobjectPointer\fP is kind of the class \fBclassName\fP (see \fImacro IsKindOf\fP). If that is the case it returns \fBobjectPointer\fP casted to \fBclassName *\fP. Otherwise it reports an error and returns \fBNULL\fP.
  8. .br
  9. Example:
  10. .na
  11. .nf
  12.  
  13. VObject *vop = new TextItem (/* ... */);
  14. TextItem *ti;
  15.  
  16. if (ti = Guard(vop,TextItem))      // successful
  17.     ti-\>SetString("xxxxx");
  18.  
  19. EditTextItem *eti;
  20. if (eti = Guard(vop,EditTextItem))    // returns NULL and reports an error
  21.     eti-\>SetSelection();
  22.  
  23.  
  24. .ad b
  25. .fi
  26.  
  27. macro \fBGuard\fP is sometimesused.
  28. .SH ARGUMENTS
  29. .TP
  30. \fBObjPtr objectPointer
  31. .br
  32. refers to the object whose class is checked and it is then casted to \fBclassName *\fP
  33. .TP
  34. \fBname className
  35. .br
  36. the name of the class which the object in \fBobjectPointer\fP should be an instance of
  37. .SH CATEGORIES
  38.  
  39. .na
  40. metaclass
  41. .ad b
  42.  
  43. .SH FILES
  44. .PD 0
  45. .TP 20
  46. declaration:
  47. \fBObject.h
  48. .SH KNOWN PROBLEMS
  49.  
  50. \fBGuard\fP is sometimes called in ET++ without checking the return value (e.g. several methods of the \fIclass Menu\fP and the \fIclass Window\fP).
  51. .br
  52.  
  53. .br
  54. .B Notice:
  55.  
  56. .SH HISTORY
  57. joe@csesbg.at    Mon Jun 17 19:47 1991    reworked
  58. .br
  59. joe@csesbg.at    Wed Jun 19 18:24 1991    added IsKindOf, Guard
  60. .br
  61.